// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	2/21/2015 7:36:29 PM				
// -----------------------------

#ifndef _IMutex_h
#define _IMutex_h

#include "Common.h"

namespace Flow
{

	class IMutex
	{
	public:

		// Release the Mutex
		virtual void	Release() = 0;

		// Lock the mutex
		virtual void	Lock() = 0;
		// Try to Lock the mutex
		// Returns false if already locked
		virtual Bool	TryLock() = 0;
		// Unlock the Mutex
		virtual void	Unlock() = 0;

	};

}

#endif